home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Missions / Mission_14 / Mission.script < prev    next >
Text File  |  2001-12-24  |  9KB  |  294 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. class CEliminateDescentMission extends
  11.   CBaseMission, CEliminateDescentMissionObjectList, CEliminateDescentMission_Strings,
  12.   CNavPointUser, CGermanParatrooperGenerator
  13.  
  14. {
  15.   int GetAutoGeneratedUnitsQty()
  16.   {
  17.     return 6;
  18.   }
  19.  
  20.   void CEliminateDescentMission()
  21.   {
  22.     BaseMission_InitMission();
  23.  
  24.     BaseMission_UpdateLoadProgress();
  25.     CreateComponent("DebugCamera", "GameObject", "CDebugCamera");
  26.     SetComponentPosition("DebugCamera",
  27.       matrix(
  28.         1.0, 0.0, 0.0, 8000.0,
  29.         0.0, 1.0, 0.0, 8000.0,
  30.         0.0, 0.0, 1.0,  600.0,
  31.         0.0, 0.0, 0.0,    1.0
  32.       ));
  33.  
  34.     // CreateComponent(IDToRegister, ComponentID, ScriptName | FileName | "")
  35.     BaseMission_UpdateLoadProgress();
  36.     CreateComponent("Atmosphere", "Atmosphere", "CEliminateDescentMission_Atmosphere");
  37.  
  38.     BaseMission_UpdateLoadProgress();
  39.     CreateComponent("Sky", "SkyObject", "CEliminateDescentMission_Sky");
  40.  
  41.     BaseMission_UpdateLoadProgress();
  42.     CreateComponent("Terrain", "ProgressiveTerrainObject", "CEliminateDescentMission_Terrain");
  43.  
  44.     BaseMission_UpdateLoadProgress();
  45.     CreateComponent("Forest", "Forest", "CEliminateDescentMission_Forest");
  46.  
  47.     BaseMission_UpdateLoadProgress();
  48.     CreateComponent( "AIController", "AIController", "CMission14_AIController");
  49.  
  50.     BaseMission_CreateObjects();
  51.   }
  52.  
  53.   //
  54.   //  'virtual' methods
  55.   //
  56.  
  57.   //
  58.   //  Objectives
  59.  
  60.   array m_MissionObjectivesStatuses =
  61.           array(
  62.             str_ObjectiveInProgress,
  63.             str_ObjectiveInProgress,
  64.             str_ObjectiveInProgress,
  65.             str_ObjectiveInProgress
  66.           );
  67.  
  68.   array m_BonusMissionObjectivesStatuses =
  69.           array(
  70.             str_ObjectiveInProgress
  71.                   );
  72.  
  73.   //
  74.   //  Mission statistics
  75.  
  76.   string GetMissionStatistics()
  77.   {
  78.     return str_StatisticsTitle;
  79.   }
  80.  
  81.   //
  82.   //  Mission navpoints
  83.  
  84.   array GetNavPoints()
  85.   {
  86.     array navpoints =
  87.       array(
  88.         GetNavPoint("NavPoint_01"),     // Crossroad position
  89.         GetNavPoint("NavPoint_02"),     // Benghazi position
  90.         GetNavPoint("NavPoint_03"),     // Al-Bwairat position
  91.         GetNavPoint("NavPoint_04")      // Zillah position
  92.       );
  93.     return navpoints;
  94.   }
  95.  
  96.   //
  97.   //  Mission map skin file
  98.  
  99.   string GetMapSkinFileName()
  100.   {
  101.     return "Missions/Mission_14/Map.skin";
  102.   }
  103.  
  104.   int m_ZillahToLanding   = 11;
  105.   int m_BenghaziToLanding = 11;
  106.   int m_BwairatToLanding  = 8;
  107.   int m_RoadFlakLost      = 8;
  108.   int m_CrossRoadLost     = 15;
  109.  
  110.   int m_ZillahDropped   = 0;
  111.   int m_BenghaziDropped = 0;
  112.   int m_BwairatDropped  = 0;
  113.  
  114.   int m_ZillahLanded   = 0;
  115.   int m_BenghaziLanded = 0;
  116.   int m_BwairatLanded  = 0;
  117.  
  118.   int m_ZillahKilled    = 0;
  119.   int m_BenghaziKilled  = 0;
  120.   int m_BwairatKilled   = 0;
  121.   int m_RoadFlakKilled  = 0;
  122.   int m_CrossRoadKilled = 0;
  123.  
  124.   boolean m_IsZillahLanded   = false;
  125.   boolean m_IsBenghaziLanded = false;
  126.   boolean m_IsBwairatLanded  = false;
  127.  
  128.   boolean Objective1      = false;
  129.   boolean Objective2      = false;
  130.   boolean Objective3      = false;
  131.   boolean Objective4      = false;
  132.   boolean BonusObjective1 = false;
  133.  
  134.   string m_ZillahScript   = "C14_ZillahDescent";
  135.   string m_BenghaziScript = "C14_BenghaziDescent";
  136.   string m_BwairatScript  = "C14_BwairatDescent";
  137.  
  138.   void ZillahDescentArrival()
  139.     {
  140.       BaseMission_DelayedQuit();
  141.     }
  142.   void BenghaziDescentArrival()
  143.     {
  144.       BaseMission_DelayedQuit();
  145.     }
  146.   void BwairatDescentArrival()
  147.     {
  148.       BaseMission_DelayedQuit();
  149.     }
  150.  
  151.   void OnGameObjectDestroyed(string _id)
  152.    {
  153.      BaseMission_OnGameObjectDestroyed(_id);
  154.      Core_BroadcastEvent( "Unit_Destroyed", _id);
  155.  
  156.      if ( Core_IsStringStartsWith( _id, "14_Zillah" ) )
  157.       {
  158.   //     if ( m_IsZillahLanded )
  159. //        {
  160.             m_ZillahKilled = m_ZillahKilled + 1;
  161.             if ( (m_ZillahKilled >= m_ZillahLanded) && m_IsZillahLanded && (!Objective1) )
  162.              {
  163.                Objective1 = true;
  164.                BaseMission_CompleteObjective(0);
  165.              }
  166. //        }
  167.       }
  168.      if ( Core_IsStringStartsWith( _id, "14_Benghazi" ) )
  169.       {
  170. //       if ( m_IsBenghaziLanded )
  171. //        {
  172.          m_BenghaziKilled = m_BenghaziKilled + 1;
  173. //        Core_LogMessage("Benghazi troopers has killed. Amount "+m_ZillahKilled);
  174.          if ( (m_BenghaziKilled >= m_BenghaziLanded) && m_IsBenghaziLanded && (!Objective2) )
  175.           {
  176.              Objective2 = true;
  177.              BaseMission_CompleteObjective(1);
  178. //             Core_LogMessage("Benghazi troopers has killed: "+m_ZillahKilled);
  179.           }
  180. //        }
  181.       }
  182.      if ( Core_IsStringStartsWith( _id, "14_Bwairat" ) )
  183.       {
  184. //       if ( m_IsBwairatLanded )
  185. //        {
  186.          m_BwairatKilled = m_BwairatKilled + 1;
  187. //        Core_LogMessage("Benghazi troopers has killed. Amount "+m_ZillahKilled);
  188.          if ( (m_BwairatKilled >= m_BwairatLanded) && m_IsBwairatLanded && (!Objective3) )
  189.           {
  190.              Objective3 = true;
  191.              BaseMission_CompleteObjective(2);
  192. //             Core_LogMessage("Benghazi troopers has killed: "+m_ZillahKilled);
  193.           }
  194. //        }
  195.       }
  196.      if ( Core_IsStringStartsWith( _id, "14_CrossRoad" ) )
  197.       {
  198.         m_CrossRoadKilled = m_CrossRoadKilled + 1;
  199. //        Core_LogMessage("Crossroad guard has killed. Amount "+m_CrossRoadKilled);
  200.         if ( (m_CrossRoadKilled >= m_CrossRoadLost) && (!Objective4) )
  201.           {
  202. //             Core_LogMessage("Crossroad guard has killed all with "+m_CrossRoadKilled+" units");
  203.              BaseMission_CompleteObjective(3);
  204.           }
  205.       }
  206.      if ( Core_IsStringStartsWith( _id, "14_RoadFlak" ) )
  207.       {
  208.         m_RoadFlakKilled = m_RoadFlakKilled + 1;
  209.         if ( (m_RoadFlakKilled >= m_RoadFlakLost) && (!BonusObjective1) )
  210.           {
  211.              BonusObjective1 = true;
  212.              BaseMission_CompleteBonusObjective(0);
  213.           }
  214.       }
  215.    }
  216.    //--------------------------------------------------------------------------//
  217.  void OnParatrooperGroupLanded( boolean _IsLanded, string _LandedID )
  218.   {
  219. //     Core_LogMessage("Group was landed with name - "+_LandedID+" and with alive - "+_IsLanded);
  220.      if ( Core_IsStringStartsWith( _LandedID, "14_Zillah" ) )
  221.       {
  222.         if ( _IsLanded)
  223.          {
  224.            SetBehaviorTask(_LandedID, m_ZillahScript);
  225.            Core_SendEventTo(_LandedID, "OnStartBehavior");
  226.            m_ZillahLanded = m_ZillahLanded + 1;
  227.          }
  228.  
  229.         m_ZillahDropped = m_ZillahDropped + 1;
  230.         if ( m_ZillahDropped >= m_ZillahToLanding )
  231.          {
  232.           m_IsZillahLanded = true;
  233.           if ( m_ZillahLanded == 0 )
  234.             {
  235.               Objective1 = true;
  236.               BaseMission_CompleteObjective(0);
  237. //              Core_LogMessage("Zillah dropped with: "+m_ZillahDropped+" paratroopers");
  238. //              Core_LogMessage("Zillah landed with: "+m_ZillahLanded+" paratroopers");
  239.             }
  240. //          Core_LogMessage("Zillah dropped with: "+m_ZillahDropped+" paratroopers");
  241. //          Core_LogMessage("Zillah landed with: "+m_ZillahLanded+" paratroopers");
  242.          }
  243.       }
  244.      if ( Core_IsStringStartsWith( _LandedID, "14_Benghazi" ) )
  245.       {
  246.         if ( _IsLanded)
  247.          {
  248.            SetBehaviorTask(_LandedID, m_BenghaziScript);
  249.            Core_SendEventTo(_LandedID, "OnStartBehavior");
  250.            m_BenghaziLanded = m_BenghaziLanded + 1;
  251.          }
  252.  
  253.         m_BenghaziDropped = m_BenghaziDropped + 1;
  254.         if ( m_BenghaziDropped >= m_BenghaziToLanding )
  255.          {
  256.           m_IsBenghaziLanded = true;
  257.           if ( m_BenghaziLanded == 0 )
  258.             {
  259.               Objective2 = true;
  260.               BaseMission_CompleteObjective(1);
  261.             }
  262.          }
  263.       }
  264.      if ( Core_IsStringStartsWith( _LandedID, "14_Bwairat" ) )
  265.       {
  266.         if ( _IsLanded)
  267.          {
  268.            SetBehaviorTask(_LandedID, m_BwairatScript);
  269.            Core_SendEventTo(_LandedID, "OnStartBehavior");
  270.            m_BwairatLanded = m_BwairatLanded + 1;
  271.          }
  272.  
  273.         m_BwairatDropped = m_BwairatDropped + 1;
  274.         if ( m_BwairatDropped >= m_BwairatToLanding )
  275.          {
  276.           m_IsBwairatLanded = true;
  277.           if ( m_BenghaziLanded == 0 )
  278.             {
  279.               Objective3 = true;
  280.               BaseMission_CompleteObjective(2);
  281.             }
  282.          }
  283.       }
  284.   }
  285.  
  286.   void OnMissionLoaded()
  287.   {
  288.     Core_SendEventTo("Helicopter", "OnInitiallyEnableTargetScreen", false);
  289.  
  290.     // Start mission music playing
  291.     Core_SendEventTo(SOID_MusicController, "PlayMissionMusic", 14);
  292.   }
  293. }
  294.